Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

5장. 양자화, 모델 다이어트의 마법

이 장의 목표 Q4_K_M, Q5_K_M, Q8_0 같은 파일 이름이 무슨 뜻인지 모두 읽히게 됩니다.

그리고 어떤 양자화를 받아야 하는지 자신 있게 고를 수 있게 됩니다.


5.1 양자화가 뭔가?

모델 안의 숫자(파라미터)는 원래 고정밀 실수 입니다.

3.141592653589793
-0.000273841920
2.718281828459045
...

이런 숫자가 수십~수백억 개 들어있습니다.

문제는 이걸 고정밀로 저장하면 너무 큽니다.

그래서 사람들이 생각했습니다.

“어차피 마지막 자리 몇 개는 결과에 영향이 거의 없는데, 좀 잘라서 저장하면 안 될까?”

이게 양자화입니다.

[원본 FP16]              [Q4 양자화]
3.141592653589793   →    3.14
-0.000273841920     →    0
2.718281828459045   →    2.72

비유하자면:

사진을 16비트 RAW로 저장하다가 JPEG로 압축한 것과 비슷합니다.

약간의 화질 손실은 있지만, 사람이 보기엔 거의 차이가 없습니다.


5.2 비트 수와 메모리

4장에서 본 식의 핵심 변수입니다.

필요 메모리 ≈ 파라미터 수 × 비트 수 / 8
양자화한 숫자가 차지하는 크기32B 기준 가중치
FP16 / BF1616비트약 64GB
Q88비트약 32GB
Q66비트약 24GB
Q55비트약 20GB
Q44비트약 16GB
Q33비트약 12GB
Q22비트약 8GB

비트가 줄면 메모리가 줄지만 품질 손실도 커집니다.


5.3 품질-메모리 그래프

대충 이런 모양입니다.

품질
 ↑
 │  FP16 ●━━━━━━━━━━━━━━━━━ (거의 100%)
 │       │
 │   Q8  ●  (99%+)
 │       │
 │   Q6  ●  (98%)
 │       │
 │   Q5  ●  (96%)
 │       │
 │   Q4  ●  (93%) ★ 실사용 균형점
 │       │
 │   Q3  ●  (85%)
 │       │
 │   Q2  ●  (60~70%, 종종 망가짐)
 │       │
 └───────●─────────────────────→ 메모리 사용량

여기서 보이는 게 있죠.

  • FP16 → Q8 으로만 줄여도 메모리가 절반
  • 품질 손실은 1~2% 수준에 불과
  • Q4 까지는 거의 일직선 으로 효율적
  • Q3 이하 부터는 손실이 가파르게 커짐

5.4 Q4_K_M 같은 이름은 또 뭔가

GGUF 파일을 받다 보면 이런 이름을 봅니다.

Qwen3-32B-Instruct-Q4_K_M.gguf

Q4 까지는 알겠는데 K_M 이 뭘까요?

같은 4비트여도 압축 방법이 여러 가지이기 때문입니다.

접미사의미한 줄 평
Q4_0가장 단순한 4비트옛날 방식, 잘 안 씀
Q4_1약간 개선거의 안 씀
Q4_K_SK-quant Small작지만 품질 약간 손해
Q4_K_MK-quant Medium표준 권장
Q4_K_LK-quant LargeQ5에 가까움

고민될 때 답 Q4_K_M 또는 Q5_K_M 둘 중 하나만 받으세요. 95% 경우 정답입니다.

K 는 일종의 “더 똑똑한 양자화 알고리즘“이고, S/M/L 은 그 안에서도 더 적게/중간/많이 정보를 보존한다는 뜻입니다.


5.5 그러면 뭘 받아야 하는가

내 맥 메모리에 따라 답이 정해집니다.

핵심 원칙

메모리에 여유가 있으면 한 단계 위 양자화를 선택 같은 모델이라면 Q5_K_M > Q4_K_M > Q3_K_M 순으로 더 좋음

모델 크기별 추천

내 맥 메모리7B14B32B70B
16GBQ5_K_MQ4_K_M
24GBQ6_KQ5_K_M
32GBQ8_0Q6_KQ4_K_M
48GBQ8_0Q8_0Q5_K_M
64GBQ8_0Q8_0Q4_K_M~Q5_K_MQ4_K_M (체험용)
96GB+FP16Q8_0Q6_KQ5_K_M

한 줄 정리

  • 이 책의 표준 환경(64GB 맥) 에서는 32B-Q4_K_M 또는 32B-Q5_K_M 이 메인.
  • 빠른 응답이 필요하면 14B-Q5_K_M 또는 8B-Q8_0.
  • 70B는 체험용으로만.

5.6 양자화에 대한 흔한 오해

“Q4면 25% 성능밖에 안 나오는 거 아냐?”

아닙니다.

비트가 1/4 이 되었다고 지능이 1/4 이 되는 게 아닙니다.

실험적으로 Q4_K_M은 FP16 대비 체감 품질의 90~93% 정도를 유지합니다.

특히 일반 대화·요약·번역·코드 설명에서는 거의 차이를 못 느낍니다.

“그럼 Q2 받으면 70B도 돌릴 수 있겠네?”

이론상 가능하지만, Q2부터는 답이 자주 무너집니다.

  • 같은 단어 반복
  • 갑자기 영어/중국어 섞임
  • 한국어 어순 망가짐

특히 한국어처럼 학습량이 영어보다 적은 언어는 저비트 양자화에서 먼저 깨집니다.

“양자화는 GPU 메모리 절약용 아닌가?”

GPU·CPU 가리지 않고 효과가 있습니다.

게다가 양자화된 모델은 메모리 대역폭 도 적게 씁니다. 즉 속도까지 빨라집니다.

이건 7장에서 다시 봅니다.


5.7 Apple Silicon에서의 양자화 — MLX 양자화 한마디

맥 전용 프레임워크 MLX 는 자체 양자화 형식을 씁니다.

GGUF의 Q4_K_M 에 해당하는 게 MLX에서는 보통 4bit 또는 q4 로 표기됩니다.

mlx-community/Qwen3-32B-Instruct-4bit
mlx-community/Qwen3-32B-Instruct-8bit

GGUF의 K_M 같은 세분화는 적지만 Apple Silicon에 더 최적화되어 있어서 같은 4bit여도 더 빠를 수 있습니다.

자세한 비교는 19장(MLX), 20장(백엔드 비교)에서.


이 장에서 기억할 한 가지

양자화 = 모델 안의 숫자를 더 적은 비트로 저장하는 압축 기술.

메모리·속도가 줄고, 품질 손실은 Q4까지는 거의 무시 가능합니다.

표준 추천: Q4_K_M 또는 Q5_K_M.


손으로 해볼 것

1. 같은 모델의 양자화 버전 비교

Hugging Face에서 다음을 검색해보세요.

Qwen3-32B-Instruct GGUF

bartowskiunsloth 같은 유명 양자화 배포자의 페이지가 나옵니다.

Files 탭을 열면 같은 모델의 양자화 종류가 죽 나열되어 있습니다.

Q2_K   →  약 12GB
Q3_K_M →  약 15GB
Q4_K_M →  약 20GB
Q5_K_M →  약 23GB
Q6_K   →  약 27GB
Q8_0   →  약 35GB

이걸 보면서 “내 맥에는 어떤 게 맞을까” 혼자 답을 내보세요.

2. 받을 모델 1개 결정

내 맥 메모리 기준으로 실제로 받아볼 모델을 하나 정해두세요.

추천 후보:

  • 64GB 맥 → Qwen3-32B-Instruct-Q4_K_M
  • 32GB 맥 → Qwen3-14B-Instruct-Q5_K_M
  • 16GB 맥 → Qwen3-8B-Instruct-Q5_K_M

이건 17장에서 Ollama로 직접 받습니다.


다음 장에서는 컨텍스트 길이와 KV Cache 를 다룹니다.

“왜 긴 문서를 넣으니까 갑자기 느려지지?” 의 답이 거기 있습니다.